#ifndef __GPIO_H
#define __GPIO_H

enum GPIO_PORT
{
	PA=2,
	PB,
	PC,
	PD,
	PE,
	PF,
	PG,
};

#define GPIO_MODE_IN		0x00
#define GPIO_MODE_OUT		0x10
#define GPIO_MODE_AF		0x18
#define GPIO_MODE_AN		0x00

#define GPIO_IN_FLOAT		0x04
#define GPIO_IN_PULLUP		0x48
#define	GPIO_IN_PULLDOWN	0x28

#define GPIO_OUT_PP			0x00
#define GPIO_OUT_OD			0x04

#define GPIO_AF_PP			0x00
#define GPIO_AF_OD			0x04

void gpio_init(int port);
void gpio_open(int port, int pin, int mode, int type);
void gpio_close(int port, int pin);
void gpio_write(int port, int pin, int value);
int  gpio_read(int port, int pin);

#endif
